Authentication methods are known that make use of a secret key algorithm for the purpose of controlling access to a terminal, to a memory zone, or to a machine. For example, in the case of accessing a terminal by means of an integrated circuit card, the authentication method includes the steps of causing the terminal to issue a random number, of subjecting said random number to the secrete key algorithm contained in the memory of the integrated circuit and inaccessible from the outside for reading and for writing, and in transmitting the calculated result that is obtained to the terminal. In parallel, the terminal has available an authentication result obtained either by performing an analogous calculation in a security module present in the terminal or else by a link with a central organization that performs an analogous calculation or that has a correspondence table between the issued random number and the authentication result that ought to be obtained. The result calculated in the card and the authentication result are then compared and access is authorized only if the calculated result and the authentication result are identical.
A person attempting to get round the authentication method needs to discover the secret key which is stored in inaccessible manner in the card, given that the algorithm itself is generally of a known type. Physical access to the secret key is made practically impossible by existing protection techniques and, without being able to gain access directly to the secret key, attackers with access to powerful computer means have developed algorithms for reconstituting a secret key on the basis of calculation errors in the secret key algorithm, which calculation errors can be provoked by subjecting a memory zone containing the secret key algorithm or a working memory zone of the microprocessor to abnormal stresses such as ion bombardment, mechanical stress, heat stress, light stress, electrical stress, magnetic stress, . . . .
Certain types of secret key reconstitution algorithm proceed by issuing the same number to be subjected to the secret key algorithm on successive occasions and in analyzing the different results obtained when the secret key algorithm is subjected to disturbances that give rise to calculation errors. In order to counter such reconstitution algorithms, proposals have been made to disable the secret key algorithm in the event of the same number being submitted on successive occasions. However that technique is not very effective because it is possible to present different numbers cyclically or to provide some kind of correlation between successive numbers as presented, thus enabling the calculated results that are obtained to be used in reconstituting the secret key.
In order to disturb the operation of the secret key reconstitution algorithm, proposals have also been made to replace transmission of the calculated result in random manner with a result that is independent of the result actually calculated by the secret key algorithm. Thus, regardless of the disturbances inflicted by the attacker, the result received is independent of the originally issued number, thus causing the algorithm for reconstituting the secret key to search in erroneous manner for a correlation between the number issued and the result received. Unfortunately, transmitting a random result leads to a negative comparison with the authentication result, thereby causing an anomaly signal to be generated, and runs the risk of disturbing a bonafide user.